/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.ucsur.tp.colegio.daos;


import edu.ucsur.tp.colegio.beans.GradosBean;
import edu.ucsur.tp.colegio.beans.SedeBean;
import edu.ucsur.tp.colegio.beans.TurnosBean;
import edu.ucsur.tp.colegio.connections.DBConnection;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Administrador
 */
public class MySqlGradosSchoolDao {
    
    public GradosBean getGrados(String txtCodigoGrado){
        
        String sql = "SELECT * FROM grados WHERE CodigoGrado = ?";
        
        try {
      //1. Obtener la conexi�n
      Connection conn = DBConnection.getConnection();
      
      //2. Obtenemos la sentencia Java (PreparedStatement)
      PreparedStatement pstmt = conn.prepareStatement(sql);
      //-- 2.1. Setear los par�metros din�micos
      pstmt.setString(1, txtCodigoGrado);
      //3. Ejecutar la sentencia (se recupera en un cursor)
      ResultSet rs = pstmt.executeQuery();
      //4. Recorriendo el cursor
      if (rs.next()) {
        GradosBean grado = new GradosBean();
        
        grado.setTxtCodigoGrado(rs.getString("CodigoGrado"));
        grado.setTxtSeccionGrado(rs.getString("SeccionGrado"));
        grado.setTxtAulaGrado(rs.getString("AulaGrado"));
        grado.setCboTurnoGrado(new TurnosBean(rs.getString("codigoturno"), "codigoturno"));
        grado.setCboSede(new SedeBean(rs.getString("codigosede"), "codigosede"));
        grado.setTxtGrado(rs.getString("Grado"));
        return grado;
      }
      //5. Cerrando los recursos JDBC
      rs.close();
      pstmt.close();
      conn.close();
    } catch (Exception ex) {
      ex.printStackTrace();
    }
    return null;
        
    }
    
    // public List<AlumnoBean>
    
     public List<GradosBean> getListaGradoPorFiltros(String filtroSeccion, String filtroAula) {
    List<GradosBean> listaGrados = new ArrayList<GradosBean>();
    
    String sql = "SELECT * FROM grados WHERE SeccionGrado like ? AND AulaGrado like ?";
    try {
      //1. Obtener la conexi�n
      Connection conn = DBConnection.getConnection();
      //2. Obtenemos la sentencia Java (PreparedStatement)
      PreparedStatement pstmt = conn.prepareStatement(sql);
      //-- 2.1. Setear los par�metros din�micos
      pstmt.setString(1, "%" + filtroSeccion + "%");
      pstmt.setString(2, "%" + filtroAula + "%");
      //3. Ejecutar la sentencia (se recupera en un cursor)
      ResultSet rs = pstmt.executeQuery();
      //4. Recorriendo el cursor
      while (rs.next()) {
        GradosBean grado = new GradosBean();
        grado.setTxtCodigoGrado(rs.getString("CodigoGrado"));
        grado.setTxtSeccionGrado(rs.getString("SeccionGrado"));
        grado.setTxtAulaGrado(rs.getString("AulaGrado"));
        grado.setCboTurnoGrado(new TurnosBean(rs.getString("codigoturno"), "codigoturno"));
        grado.setCboSede(new SedeBean(rs.getString("codigosede"), "codigosede"));
        grado.setTxtGrado(rs.getString("Grado"));
        listaGrados.add(grado);
      }
      //5. Cerrando los recursos JDBC
      rs.close();
      pstmt.close();
      conn.close();
      //6. Devolver la lista
      return listaGrados;
    } catch (Exception ex) {
      ex.printStackTrace();
    }
    return null;
  }
     
     
     public void insertar(GradosBean grado) {
    String sql = "INSERT INTO grados ( CodigoGrado, SeccionGrado, AulaGrado, Grado ) ";
    sql += " VALUES ( ?, ?, ?, ? ) ";
    try {
      //1. Obtener la conexi�n
      Connection conn = DBConnection.getConnection();
      //2. Obtenemos la sentencia Java (PreparedStatement)
      PreparedStatement pstmt = conn.prepareStatement(sql);
      //-- 2.1. Setear los par�metros din�micos
      pstmt.setString(1, grado.getTxtCodigoGrado());
      pstmt.setString(2, grado.getTxtSeccionGrado());
      pstmt.setString(3, grado.getTxtAulaGrado());
      pstmt.setString(4, grado.getTxtGrado());
      
      //3. Ejecutar la sentencia (se recupera en un cursor)
      pstmt.executeUpdate();
      //7. Cerrando los recursos JDBC
      pstmt.close();
      conn.close();
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  } 
   
    public void eliminar(String CodigoGrado) {
    String sql = "DELETE FROM grados WHERE CodigoGrado = ? ";
    try {
      //1. Obtener la conexi�n
      Connection conn = DBConnection.getConnection();
      //2. Obtenemos la sentencia Java (PreparedStatement)
      PreparedStatement pstmt = conn.prepareStatement(sql);
      //-- 2.1. Setear los par�metros din�micos
      pstmt.setString(1, CodigoGrado);
      //3. Ejecutar la sentencia (se recupera en un cursor)
      pstmt.executeUpdate();
      //7. Cerrando los recursos JDBC
      pstmt.close();
      conn.close();
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
    
    public void actualizar(GradosBean grado) {
    String sql = "UPDATE grados SET CodigoGrado = ?, SeccionGrado = ?, AulaGrado = ?, Grado = ? ";
    try {
      //1. Obtener la conexi�n
      Connection conn = DBConnection.getConnection();
      //2. Obtenemos la sentencia Java (PreparedStatement)
      PreparedStatement pstmt = conn.prepareStatement(sql);
      //-- 2.1. Setear los parametros dinamicos
      pstmt.setString(1, grado.getTxtCodigoGrado());
      pstmt.setString(2, grado.getTxtSeccionGrado());
      pstmt.setString(3, grado.getTxtAulaGrado());
      pstmt.setString(4, grado.getTxtGrado());
      //3. Ejecutar la sentencia (se recupera en un cursor)
      pstmt.executeUpdate();
      //7. Cerrando los recursos JDBC
      pstmt.close();
      conn.close();
    } catch (Exception ex) {
      ex.printStackTrace();
    } 
   }  
    
    
}
